home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!cs.utexas.edu!sun-barr!cronkite.Central.Sun.COM!jethro!exodus!la.tce.com
- From: pierre@la.tce.com (Pierre Willard)
- Newsgroups: comp.sources.x
- Subject: v13i080: xxgdb, Patch2, Part01/01
- Message-ID: <16950@exodus.Eng.Sun.COM>
- Date: 16 Jul 91 23:53:51 GMT
- References: <csx-13i080-xxgdb@uunet.UU.NET>
- Sender: news@exodus.Eng.Sun.COM
- Lines: 956
- Approved: argv@sun.com
-
- Submitted-by: pierre@la.tce.com (Pierre Willard)
- Posting-number: Volume 13, Issue 80
- Archive-name: xxgdb/patch2
- Patch-To: xxgdb: Volume 11, Issue 42-44 51-55
- Patch-To: xxgdb: Volume 12, Issue 78
-
- (2/11/91) v11i042: xxgdb/part01
- xxgdb - X front end for gdb, Part01/08
- (2/11/91) v11i043: xxgdb/part02
- xxgdb - X front end for gdb
- (2/11/91) v11i044: xxgdb/part03
- xxgdb - X front end for gdb, Part03/08
- (2/11/91) v11i051: xxgdb/part04
- xxgdb - X front end for gdb, Part04/08
- (2/11/91) v11i052: xxgdb/part05
- xxgdb - X front end for gdb
- (2/11/91) v11i053: xxgdb/part06
- xxgdb - X front end for gdb
- (2/11/91) v11i054: xxgdb/part07
- xxgdb - X front end for gdb
- (2/11/91) v11i055: xxgdb/part08
- xxgdb - X front end for gdb, Part08/08
- (5/2/91) v12i078: xxgdb/patch1
- xxgdb - X front end for gdb, Patch1, Part01/01
-
-
-
- XXGDB version 1.04 ( X window interface to the GDB debugger )
- -------------------------------------------------------------
-
- A little while ago (January 91) I posted the complete source files
- for xxgdb version 1.01 (Volume 11, Issue 42-55).
- In May 91 I posted the differences for xxgdb 1.03 (from 1.01)
- (Volume 12, Issue 78).
-
- Please find in the following the differences from version
- 1.03 to 1.04.
-
- NEW FEATURES OF VERSION 1.04 :
-
- display command print all error messages (if any).
- fix bug display C structures.
- several patches for more generic BSD machines (JBL)
- patches for NeXT because some GDB incompatibilities.
- display gdb messages when executing list command.
- fix problem scrolling symbols while scrolling with keys (GWC).
- fix bug displaying arrow when up/down in recursive function.
-
- TO PATCH XXGDB FROM VERSION 1.03 TO VERSION 1.04 :
-
- cd <original xxgdb 1.03 source directory>
- chmod +rw *
- patch < <patch_file>
-
- THE FOLLOWING IS THE PATCH FILE FOR XXGDB 1.04 FROM XXGDB 1.03 :
-
- diff -rc2 v1.03/Imakefile v1.04/Imakefile
- *** v1.03/Imakefile Tue Apr 2 09:33:13 1991
- --- v1.04/Imakefile Tue May 14 09:00:24 1991
- ***************
- *** 10,18 ****
- #if defined(SunArchitecture)
- #if OSMajorVersion >= 4
- ! DEFINES = -DSUNOS4 $(DEFGDB)
- #else
- ! DEFINES = -DOLDSUNOS -DNEED_STRSTR $(DEFGDB)
- #endif
- #endif
-
- #ifdef UltrixArchitecture
- --- 10,22 ----
- #if defined(SunArchitecture)
- #if OSMajorVersion >= 4
- ! #if OSMajorVersion == 4 && OSMinorVersion == 0
- ! DEFINES = -DSUNOS4 -DNEED_STRSTR $(DEFGDB)
- #else
- ! DEFINES = -DSUNOS4 $(DEFGDB)
- #endif
- + #else
- + DEFINES = -DOLDSUNOS -DNEED_STRSTR $(DEFGDB)
- #endif
- + #endif
-
- #ifdef UltrixArchitecture
- ***************
- *** 22,25 ****
- --- 26,33 ----
- DEFINES = -DBSD $(DEFGDB)
- #endif
- + #endif
- +
- + #ifdef PegasusArchitecture
- + DEFINES = -DBSD $(DEFGDB) -DNEED_STRSTR
- #endif
-
- diff -rc2 v1.03/Makefile v1.04/Makefile
- *** v1.03/Makefile Tue Apr 2 09:35:10 1991
- --- v1.04/Makefile Thu May 30 15:39:41 1991
- ***************
- *** 37,41 ****
- SHELL = /bin/sh
-
- ! TOP = /net/pi/usr/X11R4/mit
- CURRENT_DIR = .
-
- --- 37,41 ----
- SHELL = /bin/sh
-
- ! TOP = /net/alpha/usr3/X11R4/mit
- CURRENT_DIR = .
-
- ***************
- *** 228,232 ****
- DEFGDB = -DGDB -g
-
- ! DEFINES = -DSUNOS4 $(DEFGDB)
-
- mallocc = #malloc.c
- --- 228,232 ----
- DEFGDB = -DGDB -g
-
- ! DEFINES = -DSUNOS4 $(DEFGDB)
-
- mallocc = #malloc.c
- diff -rc2 v1.03/XDbx.ad v1.04/XDbx.ad
- *** v1.03/XDbx.ad Mon Nov 26 17:31:00 1990
- --- v1.04/XDbx.ad Thu May 30 17:51:39 1991
- ***************
- *** 21,27 ****
- *sourceWindow.scrollHorizontal: whenNeeded
- *sourceWindow.translations: #override \n\
- ! <Btn1Down>: SelectStart() SelectWord() \n\
- ! Shift<Btn1Up>: Update() SelectEnd() PrintSelection() \n\
- ! <Btn1Up>: Update() SelectEnd() \n
- *messageWindow*font: variable
- *messageWindow.min: 30
- --- 21,39 ----
- *sourceWindow.scrollHorizontal: whenNeeded
- *sourceWindow.translations: #override \n\
- ! <Btn1Down>: SelectStart() SelectWord() \n\
- ! Shift<Btn1Up>: Update(warp) SelectEnd() PrintSelection() \n\
- ! <Btn1Up>: Update(warp) SelectEnd() \n\
- ! <Key>Down: next-line() Update()\n\
- ! <Key>Up: previous-line() Update() \n\
- ! Ctrl<Key>L: redraw-display() Update() \n\
- ! Ctrl<Key>N: next-line() Update() \n\
- ! Ctrl<Key>P: previous-line() Update() \n\
- ! Ctrl<Key>V: next-page() Update() \n\
- ! Ctrl<Key>Z: scroll-one-line-up() Update() \n\
- ! Meta<Key>V: previous-page() Update() \n\
- ! Meta<Key>Z: scroll-one-line-down() Update() \n\
- ! :Meta<Key>\>: end-of-file() Update() \n\
- ! :Meta<Key>]: forward-paragraph() Update() \n\
- ! :Meta<Key>[: backward-paragraph() Update()
- *messageWindow*font: variable
- *messageWindow.min: 30
- diff -rc2 v1.03/XXGDB_README v1.04/XXGDB_README
- *** v1.03/XXGDB_README Tue Apr 16 09:03:21 1991
- --- v1.04/XXGDB_README Tue Jul 9 13:36:08 1991
- ***************
- *** 165,168 ****
- --- 165,172 ----
- See display_info_handler function in gdb_handler.c
-
- + - Copy the application default file (XDbx.ad) into your home
- + directory or into the X '/usr/lib/X11/app-defaults' directory
- + (eg, 'cp -p XDbx.ad ~/XDbx').
- +
- - The name of the debugger called by xxgdb is by default 'gdb'.
- It can be overridden with the environment variable XXGDB_DEBUGGER.
- ***************
- *** 235,238 ****
- --- 239,250 ----
- Fix bug define commands in .gdbinit or source files
- Add db_name and db_prompt option (GWC)
- + 1.04 May 1991
- + display command print all error messages (if any).
- + fix bug display C structures.
- + several patches for more generic BSD machines (JBL)
- + patches for NeXT because some GDB incompatibilities.
- + display gdb messages when executing list command.
- + fix problem scrolling symbols while scrolling with keys (GWC).
- + fix bug displaying arrow when up/down in recursive function.
-
-
- ***************
- *** 242,245 ****
- --- 254,261 ----
- Thanks to Guy Cherry (GWC) for his numerous bug reports and
- suggestions, and to all of you who helped improve xxgdb.
- +
- + Thanks to j braham levy (JBL) for his modifications for
- + generic BSD machines.
- +
-
- --------------------------
- diff -rc2 v1.03/calldbx.c v1.04/calldbx.c
- *** v1.03/calldbx.c Fri Apr 19 15:55:06 1991
- --- v1.04/calldbx.c Tue May 14 09:10:10 1991
- ***************
- *** 69,73 ****
- */
-
- ! #ifdef OLDSUNOS
- #include <sys/ioctl.h>
- #else
- --- 69,76 ----
- */
-
- ! /*
- ! * (JBL)10MAY91 : not only OLDSUNOS but generic BSD have sgttyb
- ! */
- ! #if defined(OLDSUNOS) || defined(BSD)
- #include <sys/ioctl.h>
- #else
- ***************
- *** 146,150 ****
- char *argv[];
- {
- ! #ifndef OLDSUNOS
- struct termio Termio;
- #else
- --- 149,156 ----
- char *argv[];
- {
- ! /*
- ! * (JBL)10MAY91 : use sgttyb if generic BSD
- ! */
- ! #if !(defined(OLDSUNOS) || defined(BSD))
- struct termio Termio;
- #else
- ***************
- *** 232,235 ****
- --- 238,246 ----
- of gdbinit files. Also for SYSV setvbuf is required. */
- /* setlinebuf(dbxfp); */
- +
- + /* (JBL)10MAY91 : to get the thing to work on my machine
- + * i needed to set unbuffered mode via setbuf command
- + * this should work on generic BSD platforms
- + */
-
- #ifdef SYSV
- ***************
- *** 236,241 ****
- --- 247,256 ----
- setvbuf(dbxfp, dbxfbuf, _IONBF, BUFSIZ); */
- #else
- + #ifdef BSD
- + setbuf(dbxfp, NULL);
- + #else
- setvbuf(dbxfp, NULL, _IONBF, 0);
- #endif
- + #endif
-
- dbxInputId = XtAppAddInput(app_context, master, XtInputReadMask,
- ***************
- *** 260,264 ****
- */
-
- ! #ifndef OLDSUNOS
- ioctl(slave, TCGETA, &Termio);
- Termio.c_lflag &= ~ECHO; /* No echo */
- --- 275,282 ----
- */
-
- ! /*
- ! * (JBL)10MAY91 : use sgttyb if OLDSUN or generic BSD
- ! */
- ! #if !(defined(OLDSUNOS) || defined(BSD))
- ioctl(slave, TCGETA, &Termio);
- Termio.c_lflag &= ~ECHO; /* No echo */
- diff -rc2 v1.03/dbx.c v1.04/dbx.c
- *** v1.03/dbx.c Fri Apr 12 17:05:54 1991
- --- v1.04/dbx.c Tue May 7 14:59:14 1991
- ***************
- *** 183,186 ****
- --- 183,192 ----
- command = get_command();
-
- + #ifdef GDB
- + if (Echo || Filter)
- + filter(string, output, command);
- + if (Echo && Prompt)
- + AppendDialogText(xdbxprompt);
- + #else
- if (Echo) {
- filter(string, output, command);
- ***************
- *** 187,190 ****
- --- 193,197 ----
- if (Prompt) AppendDialogText(xdbxprompt);
- }
- + #endif
- if (string) {
- XtFree(string);
- ***************
- *** 224,228 ****
- char *command;
- {
- ! query_dbx_echo(command, False);
- }
-
- --- 231,235 ----
- char *command;
- {
- ! query_dbx_echo(command, False, False);
- }
-
- diff -rc2 v1.03/gdb_handler.c v1.04/gdb_handler.c
- *** v1.03/gdb_handler.c Fri Apr 12 17:06:15 1991
- --- v1.04/gdb_handler.c Tue May 7 14:59:11 1991
- ***************
- *** 83,87 ****
- * done_handler(): Progrm execution completed, clear breakpoints
- * source_handler(): Exec commands of source file specified.
- ! * query_dbx_echo(): Send command with echo on or off.
- */
-
- --- 83,87 ----
- * done_handler(): Progrm execution completed, clear breakpoints
- * source_handler(): Exec commands of source file specified.
- ! * query_dbx_echo(): Send command with echo on or off, filter on/off.
- */
-
- ***************
- *** 138,144 ****
-
- /* here we use query_dbx_echo instead of query_dbx so that any
- ! error message will be displayed ! */
-
- ! query_dbx_echo("list ,main\n", TRUE); /* tell gdb to use main file
- and get line number of main(). (,main will end at main) */
-
- --- 138,144 ----
-
- /* here we use query_dbx_echo instead of query_dbx so that any
- ! error message will be displayed ! (because Filter is True) */
-
- ! query_dbx_echo("list ,main\n", False, True); /* tell gdb to use main file
- and get line number of main(). (,main will end at main) */
-
- ***************
- *** 181,185 ****
- Arg args[MAXARGS];
- Cardinal n;
- !
- #ifdef UNDISPWIN
- /* this code removes the display window when there is nothing to display (GWC) */
- --- 181,185 ----
- Arg args[MAXARGS];
- Cardinal n;
- !
- #ifdef UNDISPWIN
- /* this code removes the display window when there is nothing to display (GWC) */
- ***************
- *** 322,326 ****
- void display_handler() /* display or undisplay */
- {
- ! query_dbx("display\n"); /* update display */
- }
-
- --- 322,326 ----
- void display_handler() /* display or undisplay */
- {
- ! query_dbx_echo("display\n",False, True); /* update display */
- }
-
- ***************
- *** 517,521 ****
- }
- else
- ! query_dbx_echo (s, TRUE);
- }
- }
- --- 517,521 ----
- }
- else
- ! query_dbx_echo (s, TRUE, TRUE);
- }
- }
- ***************
- *** 553,560 ****
- *
- * Same as query_dbx() in dbx.c except that Echo = True or False.
- */
- ! void query_dbx_echo(command, echo)
- char *command;
- int echo;
- {
- write_dbx(command);
- --- 553,564 ----
- *
- * Same as query_dbx() in dbx.c except that Echo = True or False.
- + * and in case Echo = False, filter says if filter() must be called.
- */
- ! Boolean Filter; /* filter dbx output (if Echo == false) ? */
- !
- ! void query_dbx_echo(command, echo, filter)
- char *command;
- int echo;
- + int filter;
- {
- write_dbx(command);
- ***************
- *** 562,565 ****
- --- 566,570 ----
-
- Echo = echo;
- + Filter = filter;
- Prompt = False;
- while (!Prompt)
- diff -rc2 v1.03/gdb_parser.c v1.04/gdb_parser.c
- *** v1.03/gdb_parser.c Fri Apr 12 17:05:32 1991
- --- v1.04/gdb_parser.c Wed May 22 16:46:47 1991
- ***************
- *** 256,260 ****
- break;
-
- ! case C_DISPLAY:
- {
- if ((strcmp(output_string, "") == NULL) ||
- --- 256,260 ----
- break;
-
- ! case C_DISPLAY: /* means "display foo\n" command */
- {
- if ((strcmp(output_string, "") == NULL) ||
- ***************
- *** 273,277 ****
- break;
-
- ! case C_DISPLAY_INFO:
- {
- if ((strcmp(output_string, "") == NULL) ||
- --- 273,277 ----
- break;
-
- ! case C_DISPLAY_INFO: /* means "display\n" command */
- {
- if ((strcmp(output_string, "") == NULL) ||
- ***************
- *** 472,484 ****
- /* try to find end of display structure */
-
- ! while(p1 = strstr(p,"}\n")) /* find next occurrence of "}\n" */
- ! {
- ! if (p1 && ((p1 == p) || (*(p1-1) == '\n')))
- ! {
- ! /* this line is the end of the current display */
- ! p = p1 + strlen("}\n");
- ! break;
- ! }
- ! }
- }
- }
- --- 472,477 ----
- /* try to find end of display structure */
-
- ! if (p1 = strstr(p,"\n}\n"))
- ! p = p1 + strlen("\n}\n");
- }
- }
- ***************
- *** 585,588 ****
- --- 578,595 ----
- strcpy(s, "");
- break;
- +
- + case C_DISPLAY_INFO:
- + /* (PW)7MAY91 : display error messages */
- + if (match(output_pattern, s, O_DISPLAY_INFO) != -1)
- + {
- + if (Token.mesg && strcmp(Token.mesg, ""))
- + {
- + AppendDialogText(Token.mesg);
- + bell(0);
- + }
- + strcpy(s, "");
- + }
- + break;
- +
- case C_SEARCH:
- if (match(output_pattern, s, O_SEARCH) != -1)
- ***************
- *** 590,595 ****
- break;
- case C_LIST:
- if (match(output_pattern, s, O_LIST) != -1)
- ! strcpy(s, "");
- break;
- case C_PRINT:
- --- 597,611 ----
- break;
- case C_LIST:
- + /* (PW)22MAY91 : display messages ") */
- if (match(output_pattern, s, O_LIST) != -1)
- ! {
- ! if (Token.mesg && strcmp(Token.mesg, ""))
- ! {
- ! AppendDialogText(Token.mesg);
- ! if (strstr(Token.mesg,"Source file is more recent than executable."))
- ! bell(0); /* Warn user WYSIWYG not true */
- ! }
- ! strcpy(s, "");
- ! }
- break;
- case C_PRINT:
- ***************
- *** 612,615 ****
- --- 628,632 ----
- {
- case C_DISPLAY:
- + case C_DISPLAY_INFO:
- case C_SEARCH:
- case C_LIST:
- diff -rc2 v1.03/gdb_regex.h v1.04/gdb_regex.h
- *** v1.03/gdb_regex.h Fri Apr 12 10:06:33 1991
- --- v1.04/gdb_regex.h Thu May 30 16:54:06 1991
- ***************
- *** 280,285 ****
-
- static PatternRec output_pattern[] = {
- /* exec with Message after */
- ! {"\\(.*\n\\)*\032\032\\([^ ]+\\):\\([0-9]+\\):\\([0-9]+\\):\\([^ ]+\\):0x.+\n\\([ ]*[^0-9].*\n\\)\\(\\([0-9]+:.*\n\\(\\( .*\n\\)*}\n\\)?\\)*\\)",
- NULL,
- {6, -1, -1, 3, 2, 7}
- --- 280,287 ----
-
- static PatternRec output_pattern[] = {
- +
- + #ifndef NeXT /* if standard GDB */
- /* exec with Message after */
- ! {"\\(.*\n\\)*\032\032\\([^ \n]+\\):\\([0-9]+\\):\\([0-9]+\\):\\([^ \n]+\\):0x.+\n\\([ ]*[^0-9\n].*\n\\)\\(\\([0-9]+:.*\n\\(\\( .*\n\\)*}\n\\)?\\)*\\)",
- NULL,
- {6, -1, -1, 3, 2, 7}
- ***************
- *** 286,290 ****
- },
- /* exec with Message before */
- ! {"\\(.*\n\\)*\\([ ]*[^ ].*\n\\)\032\032\\([^ ]+\\):\\([0-9]+\\):\\([0-9]+\\):\\([^ ]+\\):0x.+\n\\(\\([0-9]+:.*\n\\(\\( .*\n\\)*}\n\\)?\\)*\\)",
- NULL,
- {2, -1, -1, 4, 3, 7}
- --- 288,292 ----
- },
- /* exec with Message before */
- ! {"\\(.*\n\\)*\\([ ]*[^ \n].*\n\\)\032\032\\([^ \n]+\\):\\([0-9]+\\):\\([0-9]+\\):\\([^ \n]+\\):0x.+\n\\(\\([0-9]+:.*\n\\(\\( .*\n\\)*}\n\\)?\\)*\\)",
- NULL,
- {2, -1, -1, 4, 3, 7}
- ***************
- *** 291,298 ****
- },
- /* exec without Message */
- ! {"\\(.*\n\\)*\032\032\\(\\([^ ]+\\):\\([0-9]+\\):\\([0-9]+\\):\\([^ ]+\\):0x.+\n\\)\\(\\([0-9]+:.*\n\\(\\( .*\n\\)*}\n\\)?\\)*\\)",
- NULL,
- {2, -1, -1, 4, 3, 7}
- },
- /* done */
- {"\\(.*\n\\)*\n\\(Program terminated with signal \\|Program exited with code 0\\|Program exited normally\\).*\n\\(.*\n\\)*",
- --- 293,319 ----
- },
- /* exec without Message */
- ! {"\\(.*\n\\)*\032\032\\(\\([^ \n]+\\):\\([0-9]+\\):\\([0-9]+\\):\\([^ \n]+\\):0x.+\n\\)\\(\\([0-9]+:.*\n\\(\\( .*\n\\)*}\n\\)?\\)*\\)",
- NULL,
- {2, -1, -1, 4, 3, 7}
- },
- +
- + #else /* NeXT is a special case : same as standard except that ":0x.+" are removed. */
- + /* exec with Message after */
- + {"\\(.*\n\\)*\032\032\\([^ \n]+\\):\\([0-9]+\\):\\([0-9]+\\):\\([^ \n]+\\)\n\\([ ]*[^0-9\n].*\n\\)\\(\\([0-9]+:.*\n\\(\\( .*\n\\)*}\n\\)?\\)*\\)",
- + NULL,
- + {6, -1, -1, 3, 2, 7}
- + },
- + /* exec with Message before */
- + {"\\(.*\n\\)*\\([ ]*[^ \n].*\n\\)\032\032\\([^ \n]+\\):\\([0-9]+\\):\\([0-9]+\\):\\([^ \n]+\\)\n\\(\\([0-9]+:.*\n\\(\\( .*\n\\)*}\n\\)?\\)*\\)",
- + NULL,
- + {2, -1, -1, 4, 3, 7}
- + },
- + /* exec without Message */
- + {"\\(.*\n\\)*\032\032\\(\\([^ \n]+\\):\\([0-9]+\\):\\([0-9]+\\):\\([^ \n]+\\)\n\\)\\(\\([0-9]+:.*\n\\(\\( .*\n\\)*}\n\\)?\\)*\\)",
- + NULL,
- + {2, -1, -1, 4, 3, 7}
- + },
- + #endif /* NeXT */
- +
- /* done */
- {"\\(.*\n\\)*\n\\(Program terminated with signal \\|Program exited with code 0\\|Program exited normally\\).*\n\\(.*\n\\)*",
- ***************
- *** 301,305 ****
- },
- /* break */
- ! {"\\(.*\n\\)*Breakpoint \\([0-9]+\\) at [^ ]+: file \\([^ ]+\\), line \\([0-9]+\\).\n",
- NULL,
- {-1, 2, -1, 4, 3, -1}
- --- 322,326 ----
- },
- /* break */
- ! {"\\(.*\n\\)*Breakpoint \\([0-9]+\\) at [^ \n]+: file \\([^ \n]+\\), line \\([0-9]+\\).\n",
- NULL,
- {-1, 2, -1, 4, 3, -1}
- ***************
- *** 306,318 ****
- },
- /* info directories */
- ! {"Source directories searched:[ ]*\\([^ ]+\\)[ ]*\n",
- NULL,
- { -1, -1, -1, -1, 1, -1}
- },
- /* up, down */
- ! {"\\(.*\n\\)*\\(#[0-9]+[ ]+\\(0x[^ ]+[ ]+in[ ]+\\)?\\([^ ]+\\)[^\032]*\\)\032\032\\([^ ]+\\):\\([0-9]+\\):\\([0-9]+\\):\\([^ ]+\\):0x.+\n",
- NULL,
- {2, -1, 4, 6, 5, -1}
- },
- /* bell */
- {"\\(Undefined command: .*\n\\|Already at the \\(top\\|bottom\\) call level\n\\|\
- --- 327,351 ----
- },
- /* info directories */
- ! {"Source directories searched:[ ]*\\([^ \n]+\\)[ ]*\n",
- NULL,
- { -1, -1, -1, -1, 1, -1}
- },
- +
- +
- + #ifndef NeXT /* if standard GDB */
- /* up, down */
- ! {"\\(.*\n\\)*\\(#[0-9]+[ ]+\\(0x[^ \n]+[ ]+in[ ]+\\)?\\([^ \n]+\\)[^\032]*\\)\032\032\\([^ \n]+\\):\\([0-9]+\\):\\([0-9]+\\):\\([^ \n]+\\):0x.+\n",
- NULL,
- {2, -1, 4, 6, 5, -1}
- },
- + #else /* NeXT is a special case : same as standard except that ":0x.+" are removed. */
- + /* up, down */
- + {"\\(.*\n\\)*\\(#[0-9]+[ ]+\\(0x[^ \n]+[ ]+in[ ]+\\)?\\([^ \n]+\\)[^\032]*\\)\032\032\\([^ \n]+\\):\\([0-9]+\\):\\([0-9]+\\):\\([^ \n]+\\)\n",
- + NULL,
- + {2, -1, 4, 6, 5, -1}
- + },
- + #endif /* NeXT */
- +
- +
- /* bell */
- {"\\(Undefined command: .*\n\\|Already at the \\(top\\|bottom\\) call level\n\\|\
- ***************
- *** 330,334 ****
- },
- /* info line */
- ! {"\\(Line \\(number \\)?[0-9]+ \\(of\\|is out of range for\\) \"\\([^ ]+\\)\".*\\)\n",
- NULL,
- {-1, -1, -1, -1, 4, -1}
- --- 363,367 ----
- },
- /* info line */
- ! {"\\(Line \\(number \\)?[0-9]+ \\(of\\|is out of range for\\) \"\\([^ \n]+\\)\".*\\)\n",
- NULL,
- {-1, -1, -1, -1, 4, -1}
- ***************
- *** 345,357 ****
- },
- /* directory */
- ! {"\\([^ ]+ is already in the source path.[ ]*\n\\)*Source directories searched:[ ]*\\([^ ]+\\)[ ]*\n",
- NULL,
- { -1, -1, -1, -1, 1, -1}
- },
- ! /* list */
- ! {"\\(.*\n\\)*\\(\\([0-9]+\\).*\n\\)",
- NULL,
- ! { -1, -1, -1, 3, -1, -1}
- },
- /* display */
- {"\\([0-9]+:.*\n\\)",
- --- 378,395 ----
- },
- /* directory */
- ! {"\\([^ \n]+ is already in the source path.[ ]*\n\\)*Source directories searched:[ ]*\\([^ \n]+\\)[ ]*\n",
- NULL,
- { -1, -1, -1, -1, 1, -1}
- },
- ! /* list : 22MAY91 put message in Token.mesg (edit again 30MAY91) */
- ! {"\\(\\([^0-9\n]+.*\n\\)*\\)\\(.*\n\\)*\\(\\([0-9]+\\).*\n\\)",
- NULL,
- ! { 1, -1, -1, 5, -1, -1}
- },
- + /* {"\\(\\(.*\n\\)*\\)\\(\\([0-9]+\\).*\n\\)",
- + NULL,
- + { 1, -1, -1, 4, -1, -1}
- + },
- + */
- /* display */
- {"\\([0-9]+:.*\n\\)",
- ***************
- *** 360,369 ****
- },
- /* info display */
- ! {"\\(\\([0-9]+:.*\n\\(\\( .*\n\\)*}\n\\)?\\)*\\)",
- NULL,
- { -1, -1, -1, -1, -1, 1}
- },
- /* pwd or cd */
- ! {"Working directory[ ]+\\([^ ]+\\).[ ]*\n\\([ ]*(canonically[ ]+\\([^ ]+\\)).\n\\)?",
- NULL,
- { 1, -1, -1, -1, -1, 3}
- --- 398,412 ----
- },
- /* info display */
- ! {"\\(\\([0-9]+:.*\n\\(\\( .*\n\\)*}\n\\)?\\)*\\)\\(\\(.*\n\\)*\\)",
- NULL,
- + { 5, -1, -1, -1, -1, 1}
- + },
- + /* {"\\(\\([0-9]+:.*\n\\(\\( .*\n\\)*}\n\\)?\\)*\\)",
- + NULL,
- { -1, -1, -1, -1, -1, 1}
- },
- + */
- /* pwd or cd */
- ! {"Working directory[ ]+\\([^ \n]+\\).[ ]*\n\\([ ]*(canonically[ ]+\\([^ \n]+\\)).\n\\)?",
- NULL,
- { 1, -1, -1, -1, -1, 3}
- ***************
- *** 370,374 ****
- },
- /* program received signal */
- ! {"\\(.*\n\\)*\n\\(Program received signal \\([-]?[0-9]+\\), [^ ]+.*\n\\)\\(.*\n\\)*",
- NULL,
- { 2, 3, -1, -1, -1, -1}
- --- 413,417 ----
- },
- /* program received signal */
- ! {"\\(.*\n\\)*\n\\(Program received signal \\([-]?[0-9]+\\), [^ \n]+.*\n\\)\\(.*\n\\)*",
- NULL,
- { 2, 3, -1, -1, -1, -1}
- ***************
- *** 375,379 ****
- },
- /* special for test in filter_display_info() */
- ! {"\\([^0-9].*\n\\)*\\([0-9]+:.*\n\\)\\(.*\n\\)*",
- NULL,
- { -1, -1, -1, -1, -1, 2}
- --- 418,422 ----
- },
- /* special for test in filter_display_info() */
- ! {"\\([^0-9\n].*\n\\)*\\([0-9]+:.*\n\\)\\(.*\n\\)*",
- NULL,
- { -1, -1, -1, -1, -1, 2}
- ***************
- *** 385,389 ****
- },
- /* core-file */
- ! {"\\(.*\n\\)*\\(Program terminated with signal \\([-]?[0-9]+\\), [^ ]+.*\n\\)\\(.*\n\\)*",
- NULL,
- { 2, 3, -1, -1, -1, -1}
- --- 428,432 ----
- },
- /* core-file */
- ! {"\\(.*\n\\)*\\(Program terminated with signal \\([-]?[0-9]+\\), [^ \n]+.*\n\\)\\(.*\n\\)*",
- NULL,
- { 2, 3, -1, -1, -1, -1}
- ***************
- *** 434,438 ****
- /* symbol-file */
- {"[ ]*sy.*\n", NULL, {-1, -1, -1, -1, -1, -1}},
- ! {"[ ]*cd[ ]*[^ ]+[ ]*\n", NULL, {-1, -1, -1, -1, -1, -1}},
-
- /* directory */
- --- 477,481 ----
- /* symbol-file */
- {"[ ]*sy.*\n", NULL, {-1, -1, -1, -1, -1, -1}},
- ! {"[ ]*cd[ ]*[^ \n]+[ ]*\n", NULL, {-1, -1, -1, -1, -1, -1}},
-
- /* directory */
- ***************
- *** 451,455 ****
- add any expression to be displayed */
- {"[ ]*disp[lay]*[ ]*\n", NULL, {-1, -1, -1, -1, -1, -1}},
- ! {"[ ]*disp[lay]\\(/[^ ]+\\)?*[ ]*[^ ]+[ ]*.*\n", NULL, {-1, -1, -1, -1, -1, -1}},
-
- /* undisplay */
- --- 494,498 ----
- add any expression to be displayed */
- {"[ ]*disp[lay]*[ ]*\n", NULL, {-1, -1, -1, -1, -1, -1}},
- ! {"[ ]*disp[lay]\\(/[^ \n]+\\)?*[ ]*[^ \n]+[ ]*.*\n", NULL, {-1, -1, -1, -1, -1, -1}},
-
- /* undisplay */
- ***************
- *** 458,462 ****
- /* Note that Token.mesg (if any) is updated with print command (see 1) */
-
- ! {"[ ]*print[ ]*\\([^ ]?\\([ ]+[^ ]+\\)*\\)[ ]*\n", NULL, { 1, -1, -1, -1, -1, -1}},
- {"[ ]*info[ ]+break[ ]*\n", NULL, {-1, -1, -1, -1, -1, -1}},
-
- --- 501,505 ----
- /* Note that Token.mesg (if any) is updated with print command (see 1) */
-
- ! {"[ ]*print[ ]*\\([^ \n]?\\([ ]+[^ \n]+\\)*\\)[ ]*\n", NULL, { 1, -1, -1, -1, -1, -1}},
- {"[ ]*info[ ]+break[ ]*\n", NULL, {-1, -1, -1, -1, -1, -1}},
-
- ***************
- *** 471,477 ****
-
- /* define */
- ! {"[ ]*def[ine]*[ ]+[^ ]+\n", NULL, {-1, -1, -1, -1, -1, -1}},
- /* document */
- ! {"[ ]*doc[ument]*[ ]+[^ ]+\n", NULL, {-1, -1, -1, -1, -1, -1}},
- /* end of define or document */
- {"[ ]*end[ ]*.*", NULL, {-1, -1, -1, -1, -1, -1}},
- --- 514,520 ----
-
- /* define */
- ! {"[ ]*def[ine]*[ ]+[^ \n]+\n", NULL, {-1, -1, -1, -1, -1, -1}},
- /* document */
- ! {"[ ]*doc[ument]*[ ]+[^ \n]+\n", NULL, {-1, -1, -1, -1, -1, -1}},
- /* end of define or document */
- {"[ ]*end[ ]*.*", NULL, {-1, -1, -1, -1, -1, -1}},
- diff -rc2 v1.03/global.h v1.04/global.h
- *** v1.03/global.h Tue Apr 2 09:00:55 1991
- --- v1.04/global.h Tue May 7 14:59:20 1991
- ***************
- *** 225,228 ****
- --- 225,229 ----
-
- #ifdef GDB
- + extern Boolean Filter; /* filter dbx output (if Echo == false) ? */
- extern void display_info_handler();
- extern void break_handler();
- diff -rc2 v1.03/signs.c v1.04/signs.c
- *** v1.03/signs.c Mon Nov 26 17:31:32 1990
- --- v1.04/signs.c Tue Jul 9 13:32:49 1991
- ***************
- *** 332,340 ****
-
- if (file == NULL) return;
- if (updown.file && !strcmp(updown.file, arrow.file) &&
- ! !strcmp(updown.func, arrow.func)) {
- updown.line = 0;
- strcpy(updown.file, "");
- }
- i = updown.i;
- if (i>=0 && i<file->lines)
- --- 332,343 ----
-
- if (file == NULL) return;
- +
- + /* (PW)9JULY91 : add test line else it prevents up/down when a function calls itself */
- if (updown.file && !strcmp(updown.file, arrow.file) &&
- ! !strcmp(updown.func, arrow.func) && (updown.line == arrow.line)) {
- updown.line = 0;
- strcpy(updown.file, "");
- }
- +
- i = updown.i;
- if (i>=0 && i<file->lines)
- diff -rc2 v1.03/source.c v1.04/source.c
- *** v1.03/source.c Thu Apr 11 14:33:58 1991
- --- v1.04/source.c Thu May 30 17:53:57 1991
- ***************
- *** 131,135 ****
- file->bottomline = MIN (file->topline + file->lines - 1,
- file->lastline);
- ! XawTextSetInsertionPoint(sourceWindow, file->linepos[file->topline]);
- UpdateLineLabel(file->topline);
- UpdateStops(file);
- --- 131,151 ----
- file->bottomline = MIN (file->topline + file->lines - 1,
- file->lastline);
- ! /*
- ! 03/26/91 mod 7 GWC
- ! Fixed a bug where the special margin symbols (arrows, stop signs,
- ! etc.) did not scroll when one moved the text with keyboard commands
- ! such as Ctrl<Key>n. To do this the Update action procedure should
- ! be called after text widget actions such as next-line.
- ! Unfortunately Update needed to be enhanced a bit not to always warp
- ! the cursor to the top of the window. You can now call Update with a
- ! parameter "warp" to warp the cursor to the top of the screen; the
- ! default is not to warp.
- ! */
- ! if (*num_params == 1 && strcmp(params[0], "warp") == 0)
- ! {
- ! XawTextSetInsertionPoint(sourceWindow,
- ! file->linepos[file->topline]);
- ! }
- !
- UpdateLineLabel(file->topline);
- UpdateStops(file);
- ***************
- *** 598,601 ****
- --- 614,626 ----
- dirList[i] = NULL;
- }
- +
- + #if defined(NeXT) && defined(GDB)
- + /* for NeXT computer, send 'directory' command for each directory */
- + for (i=0; dirList[i]; i++) {
- + sprintf(command, "directory %s\n", dirList[i]);
- + Parse = False;
- + query_dbx(command);
- + }
- + #else /* not NeXT */
- strcpy(list, ""); /* tell dbx our new list */
- for (i=0; dirList[i]; i++) {
- ***************
- *** 610,613 ****
- --- 635,639 ----
- Parse = False;
- query_dbx(command);
- + #endif /* not NeXT */
- }
-
- diff -rc2 v1.03/windows.c v1.04/windows.c
- *** v1.03/windows.c Wed Apr 3 15:54:34 1991
- --- v1.04/windows.c Mon May 20 09:27:40 1991
- ***************
- *** 246,250 ****
- Cardinal n;
-
- ! fulllength = strlen (" ") + strlen (format) + 1 + (arg == NULL) ? 0 : strlen (arg);
-
- if (fulllength > LINESIZ)
- --- 246,250 ----
- Cardinal n;
-
- ! fulllength = strlen (" ") + strlen (format) + 1 + ((arg == NULL) ? 0 : strlen (arg));
-
- if (fulllength > LINESIZ)
- diff -rc2 v1.03/xdbx.c v1.04/xdbx.c
- *** v1.03/xdbx.c Tue Apr 16 10:22:40 1991
- --- v1.04/xdbx.c Mon Jul 15 15:50:50 1991
- ***************
- *** 72,76 ****
-
- #ifdef GDB
- ! #define XGDBVERSION "1.03"
- #endif
-
- --- 72,76 ----
-
- #ifdef GDB
- ! #define XGDBVERSION "1.04"
- #endif
-
- ***************
- *** 261,265 ****
-
- #ifdef GDB
- ! sprintf(title, "xxgdb %s (from xdbx %s patch level %d)", XGDBVERSION,VERSION, PATCHLEVEL);
- XStoreName(display, XtWindow(toplevel), title);
- XSetIconName(display, XtWindow(toplevel), "xxgdb");
- --- 261,265 ----
-
- #ifdef GDB
- ! sprintf(title, "xxgdb %s", XGDBVERSION);
- XStoreName(display, XtWindow(toplevel), title);
- XSetIconName(display, XtWindow(toplevel), "xxgdb");
-
- --
- Dan Heller
- O'Reilly && Associates Z-Code Software Comp-sources-x:
- Senior Writer President comp-sources-x@uunet.uu.net
- argv@ora.com argv@zipcode.com
-